import router from './router'
import store from './store'
// 进度条的使用
import NProgress from 'nprogress' // progress bar
import 'nprogress/nprogress.css' // progress bar style
// 添加白名单
const whiteList = ['/login', '/404']
router.beforeEach((to, from, next) => {
  console.log(to.path, '去哪里')
  console.log(from.path, '从哪里来')
  // 开启进度条
  NProgress.start()
  const token = store.state.user.token
  if (token) {
    // 已经登录了
    if (to.path === '/login') {
      console.log('已经登录了,不能再去登录页，跳转首页')
      next('/')
      // 注意：next如果指定了地址进行跳转，那么它不会经过router.afterEach
      // 需要手动关闭进度条
      NProgress.done()
    } else {
      console.log('已经登录了，不是去登录页，放行')
      // 调用actions中的函数，获取用户的信息,存出到vuex
      store.dispatch('user/SetUserInfo')
      next()
    }
  } else {
    // 没有登录
    if (whiteList.includes(to.path)) {
      console.log('拥有白名单,放行')
      next()
    } else {
      console.log('您还没有登录,跳转登录页')
      next('/login')
      NProgress.done()
    }
  }
})
// 页面跳转完成会经过这里
router.afterEach(() => {
  // 关闭进度条
  NProgress.done()
})
